// pages/DeliveryAddress/AddDeliveryAddress/AddDeliveryAddress.js
import {
  addDeliveryAddress
} from '../../../service/delivery-address';
import {
  isPhoneValid
} from '../../../utils/valid';

Page({
  /**
   * 页面的初始数据
   */
  data: {
    // 收货人姓名
    receiverName: '',
    // 收货人手机号码
    receiverPhone: '',
    // 省份
    province: '',
    // 城市
    city: '',
    // 区/县
    district: '',
    // 详细地址
    detailAddress: '',
    // 是否默认地址（0：否，1：是）
    isDefault: true,
    region: ['河南省', '南阳市', '镇平县'],
    eventChannel: null,
  },
  /**
   * 省市区选择器
   */
  bindRegionChange(event) {
    this.setData({
      region: event.detail.value,
    });
  },
  /**
   * 点击默认地址选择按钮
   */
  onTapSwitcher(event) {
    this.setData({
      isDefault: event.detail.value,
    });
  },
  onLoad() {
    this.eventChannel = this.getOpenerEventChannel();
  },
  /**
   * 点击保存地址按钮
   */
  async onTapSaveAddress() {
    if (this.data.receiverName.length === 0) {
      wx.showToast({
        title: '收货人不能为空', // 提示文本
        icon: 'error', // 图标（success/loading/none）
        duration: 1000, // 显示时长（ms）
        mask: true, // 是否显示透明遮罩（防止点击穿透）
      });
      return;
    }
    if (!isPhoneValid(this.data.receiverPhone)) {
      wx.showToast({
        title: '手机号格式错误', // 提示文本
        icon: 'error', // 图标（success/loading/none）
        duration: 1000, // 显示时长（ms）
        mask: true, // 是否显示透明遮罩（防止点击穿透）
      });
      return;
    }
    if (this.data.detailAddress.length === 0) {
      wx.showToast({
        title: '请填写详细地址', // 提示文本
        icon: 'error', // 图标（success/loading/none）
        duration: 1000, // 显示时长（ms）
        mask: true, // 是否显示透明遮罩（防止点击穿透）
      });
      return;
    }
    const param = {
      ...this.data,
    };
    param.isDefault = param.isDefault ? 1 : 0;
    param.province = param.region[0];
    param.city = param.region[1];
    param.district = param.region[2];
    wx.showLoading({
      title: '保存中',
      mask: true,
    });
    await addDeliveryAddress(param);
    wx.hideLoading();
    wx.showToast({
      title: '保存成功', // 提示文本
      icon: 'success', // 图标（success/loading/none）
      duration: 2000, // 显示时长（ms）
      mask: true, // 是否显示透明遮罩（防止点击穿透）
    });
    const pages = getCurrentPages();
    const parentPage = pages[pages.length - 2];
    const parentRoute = parentPage.route;
    if (
      parentRoute === 'pages/OrderConfirmation/OrderConfirmation'
    ) {
      this.eventChannel.emit('acceptDeliveryAddressInfo', param);
    }
    wx.navigateBack();
  },
});